-
Notifications
You must be signed in to change notification settings - Fork 187
Upgrade miniz_oxide and add unit tests of the different flush kinds #498
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Could we get this done towards the end of the year? Maybe it works now if the PR was rebased? |
|
Right, thanks a lot! I think I may have asked @oyvindln that before and apologise this question is redundant or repetitive, but given my ignorance, is a release of |
|
Yeah I'm hoping to get something out before the end of the year, just need to resolve a few small things. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's fantastic, thanks so much!
Could we squash this PR into one and, most importantly, add a message that describes the change and ideally the motivation?
While I could do it with the GH UI when merging, I don't like to put words into peoples mouths given that their name is all over it 😅.
This PR adds tests of the various flush kinds to ensure that all backends implement them consistently. The cases are carefully constructed so that even quite different backend implementations are likely to produce the expected output. In particular, it counts on the encoder detecting when the input is/isn't compressible and writing either compressed or stored blocks accordingly. This also upgrades miniz_oxide and corrects it to use partial fushes when requested.
This PR adds tests of the various flush kinds to ensure that all backends implement them consistently. The cases are carefully constructed so that even quite different backend implementations are likely to produce the expected output. In particular, it counts on the encoder detecting when the input is/isn't compressible and writing either compressed or stored blocks accordingly.
Tests pass for me with the
zlib,zlib-ng,zlib-rsandcloudflare_zlibbackends. Theminiz_oxidebackend requires Frommi/miniz_oxide#179 as otherwise it treats partial flushes as "no flush" (!)